如何将代理添加到BeautifulSoup爬虫
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将代理添加到BeautifulSoup爬虫相关的知识,希望对你有一定的参考价值。
这些是python搜寻器中的定义:
from __future__ import with_statement
from eventlet.green import urllib2
import eventlet
import re
import urlparse
from bs4 import BeautifulSoup, SoupStrainer
import sqlite3
import datetime
如何在一个处理BeautifulSoup的递归calwer上添加一个旋转代理(每个开放线程一个代理)?
如果我使用的是Mechanise的浏览器,我知道如何添加代理:
br = Browser()
br.set_proxies({'http':'http://username:password@proxy:port',
'https':'https://username:password@proxy:port'})
但我想知道BeautifulSoup需要什么样的解决方案。
非常感谢您的帮助!
答案
看一下使用HTTP代理的BeautifulSoup示例
http://monzool.net/blog/2007/10/15/html-parsing-with-beautiful-soup/
另一答案
请注意,现在有一个不太复杂的解决方案,共享here:
import requests
proxies = {"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080"}
requests.get("http://example.org", proxies=proxies)
然后从请求响应中正常做你的美丽汤。
因此,如果您需要具有不同代理的单独线程,则只需为每个请求调用不同的字典条目(例如,从dicts列表中)。
当您现有的包使用已经是requests / bs4时,这似乎更直接实现,因为它只是在您现有的**kwargs
调用中添加的额外requests.get()
。您不必为每个线程初始化/安装/打开单独的urllib处理程序。
以上是关于如何将代理添加到BeautifulSoup爬虫的主要内容,如果未能解决你的问题,请参考以下文章
python 爬虫proxy,BeautifulSoup+requests+mysql 爬取样例
Python爬虫之BeautifulSoup和requests的使用
python3: 爬虫---- urllib, beautifulsoup