python爬虫爬取淘宝失败原因分析
发布时间:2018-10-20 15:50,
浏览次数:927
, 标签:
python
正则表达式data = re.findall(‘g_page_config = (.*?)g_srp_loadCss’, html,re.S)[0]
报错out of range
去掉[0]后输出,只输出了一个空列表,发现其实并没有抓取到网页信息,空列表里取首元素就出现了out of range的错误。
输出html后发现代码和网页源代码不相同,没有应有的商品信息。
思考得出大概有两种可能
*
淘宝页面异步加载,必须鼠标滑动到这一点才能加载信息,所以得不到商品的信息。
*
爬取到的html要求登陆,很可能是淘宝的反爬虫机制
所用代码(python3)
import urllib.request import re import json #要爬取的网页 url =
'https://s.taobao.com/search?q=python' #伪装成浏览器 headers = ('user-agent',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/68.0.3440.106 Safari/537.36') opener=urllib.request.build_opener()
opener.addheaders=[headers] urllib.request.