如何将代理添加到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

python爬虫---实现项目 用BeautifulSoup分析新浪新闻数据

python爬虫之BeautifulSoup

python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例