引言:
很多网页呈现给我们的静态页面,但是实际上是由服务器端的动态页面生成的。再加上网站设有反爬虫机制,所以抓取到的页面不一定和源码相同。
所以!!从源码里copy xpath,不一定能取到数据!
实例:
非常的简单,从百度首页上,抓取“新闻”这两个字。
import requests
from lxml import etree
url="http://www.baidu.com"
ua={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}
bd = requests.get(url, headers=ua)
bd.encoding='utf-8'
接下来打印一下我们抓取到的页面
print(bd.text)
看不出来啥,当然了,不出问题的话,你会以为这就是页面的源码。
然后我们试一下打印“百度一下“这个按钮的文本。
numl=html.xpath('//*[@id="su"]//@value')
输出:百度一下