网络爬虫-1(共?):爬取网页的预备知识(简单爬取 / 虚拟头信息)——连接url

        谨以此记录个人学习过程,以期为后来者提供一丝半毫之参考。

 

准备工作:pip install urllib

第一:实现基本网页抓取。

第二:有些网站不能通过机器简单访问。需要使用代理绕过服务器的鉴别阻拦。

第三:    考虑把User-Agent做成一个列表,以便随机使用。常见  【User-Agent

和参考代码有区别,没有使用随机 IP。

from urllib import request
import random
from urllib.request import build_opener,ProxyHandler
# User_Agent列表
user_agent_list = [
    "Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
    "Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)",
    "Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11",
    "Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11",
    "Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)",
    "Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)"
]
# 产生一个随机User-Agent
headers ={
    # 从上面列表中随机取出一个
    # random.choice:从一个不为空的课表里面随机取出一个
    'User-Agent':random.choice(user_agent_list)
}
 
# ip地址列表:
ip_list=[
    # '209.97.171.128',
    '114.250.25.19'
]
# 产生一个随机ip
proxies={
    'http':random.choice(ip_list)
}
url = 'http://www.qiushibaike.com/'
req = request.Request(url,headers=headers)
# 创建代理ip对象
print(proxies)
pro_supper = ProxyHandler(proxies)
# 不能使用urlopen()函数,使用build_opener创建一个对象
opener = build_opener(pro_supper)
# 发送请求
res = opener.open(req)
result = res.read().decode('utf8')
print(result)

 

鸣谢:

https://blog.csdn.net/qq_41293711/article/details/81319049

https://blog.csdn.net/qq_42156420/article/details/81067343

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章