首先是selenium。这个玩意,特别适合爬一些反爬虫很强,但是无需登录的网站。当然需要登陆的也可以搞。只要你提前登陆一下就行。
这库里,最有用的东西就是下面的代码。
from selenium import webdriver
import lxml.etree
browser = webdriver.Firefox()
#创建一个浏览器实例
url=‘http://c.biancheng.net/opencv/’
page_data = browser.get(ur).page_source
print(type(page_source))
#获取网页源代码的文本。这个是最有用的。如果网页里有你的目标内容然后可以直接用lxml扒下来了。
response = lxml.etree.HTML(page_data)
#这一步是先把目标页面的信息做成一个可以用xpath查找的对象。用了response的名称是因为跟scrapy里面的response的用法一样。
taget = response.xapth('you xpath')
#这样就能拿到你想要的内容了。
input_search = browser.find_element_by_id('lia-searchQuery')
定位需要提交信息的那个按钮。
input_search.send_keys('张学友')
#向提交信息的框里输入某个信息
input_search.send_keys(Keys.ENTER)
#写好想要的内容后发送回车,从而发送请求
target =browser.find_element_by_xpath('//body').get_attribute("style")
#获取指定标签的指定属性的文本信息。
关于lxml,有一点说明:
lxml.etree.HTML(page_data)的page_data可以是文本类型str,也可以是包含了网页代码的二进制数据流btype。例如下面这个情况里热
from urllib import request
from lxml import etree
url = 'http://c.biancheng.net/opencv/'
page_data = request.urlopen(url).read()
print(type(page_data))
response = etree.HTML(page_data)
text = response.xpath('//div[@id="arc-body"]/text()')
print(text)