python爬虫入门代码

在爬虫中,需要用到的一个包就是urllib
下面写一个最简单的爬虫代码

import urllib.request
#在python3中导入的就是urllib.request,在python2中则不需要.request,直接导入urllib

response = urllib.request.urlopen('http://www.baidu.com/')
#运用 urllib.request的urlopen方法就可以访问一个URL地址,返回的是一个类文件对象
即可以像文件一样操作,读写等。

html = response.read()
html = html.decode('utf-8')
print(html)
#将 response读出之后将其转为utf-8格式即可打印出来,是html页面代码

当然直接用urlopen不支持构造HTTP请求,即无法添加header,即无法模拟浏览器请求
会直接被识破为爬虫。
我们打开百度首页,检查在network中就可以找到Request Headers即请求头,浏览器发送请求会连带着Request Headers一起发送,服务器就依靠Request Headers识别浏览器,而其中必要的就是User-Agent属性。

Request Headers
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Cookie: BAIDUID=F2FAFC90F5DAA64E705APSTM=1535338557; BD_UPN=12314353; BDUSS=FQ4bk9SaUNuRm95eUp5S1dVm95M2hzZExjeFl2aDYXN5YTJSb1JIa1JjQVFBQUFBJCQAAAAAAAAAAAEAAAAwdWx9sNm~~M~IyfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRCVFR[84MTKKs3M0n]m; PSINO=7; BDSVRTM=0
Host: www.baidu.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

因此我们在发送请求时,必须要有的就是User-Agent,当然其他的视情况而定,写完整是最保险的。

import urllib.request
ua_headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
#所以可以用urllib.request的Request方法重构请求
#Request参数很多常用的3个:URL(请求地址),data(请求方式,有数据表示是post请求,无表示get), headers(报头属性)
request1 = urllib.request.Request('http://www.baidu.com/',headers=ua_headers)
response = urllib.request.urlopen(request1)
html = response.read()
html = html.decode('utf-8')
print(html)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值