Python2.X和Python3.X调用urllib库常见的变化
Python2.X | Python3.X |
---|---|
import urllib2 | import urllib.request,urllib.error |
import urllib | import urllib.request,urllib.error,urllib.parse |
import urlparse | import urllib.parse |
urllib2.open | urllib.request.open |
urllib.urlencode | urllib.parse.urlencode |
urllib.quote | urllib.request.quote |
cookielib.CookieJar | http.CookieJar |
urllib2.Request | urllib.request.Request |
修改报头
当网站网页禁止(403 forbidden)使用Python urllib库中默认的报头(headers),我们需要修改报头
使用build_opener()修改报头
以下是实现这种方法的一段代码:
使用add_header()添加报头
使用urllib.request.Request()下的add_header()修改UA。
实现浏览器的模拟,
以下是实现这种方法的一段代码:
使用代理
有时使用同一个IP爬取别人网页的东西,久了之后有可能会被该网站屏蔽这个IP,这是可以使用代理IP。
代理IP可以通过搜索引擎找到(国内高匿IP)。代码实现如下:
这段代码运行成功会打印出百度首页的长度,失败的话会出现urllib.error.URLError的报错
正则表达式
re.search()与re.match()的qubie
re.match()函数从源字符串的开头进行匹配,re.search()函数在全文进行检索并匹配
例子: