1. request + etree(xpath,re...)
  2. selenium(xpath,css,re...)
  1. requests
from lxml import etree      # 导入xpath
...
html = response.text
# 创建xpath对象
tree = etree.HTML(html)
# 获取全部手机的li
phone_li = tree.xpath('//*[@id="J_goodsList"]/ul/li')
  1. selenium之xpath过滤选择抓取

思路:通过日期(如下面的xpath_data)来过滤自己想要的数据,再通过xpath_href来定位其他的元素,从而实现xpath过滤抓取组合数据。

    xpath_date =  "/html/body/div[2]/div[1]/div[3]/ul/li/div[2]/div/span[contains(text(),'天前') or contains(text(),'小时前') or contains(text(),'昨天')]"

    xpath_href = "/html/body/div[2]/div[1]/div[3]/ul/li/div[2]/div/span[contains(text(),'天前') or contains(text(),'小时前') or contains(text(),'昨天')]/../../h3/a"

    #对过滤日期采集日期和url进行拼接
  • 注意:
  1. selenium浏览器最小化模式下,模拟点击的方式有时候会失效