文本混淆反爬 - CSS偏移反爬虫

限于喜欢 提交于 2020-01-29 00:37:24

在浏览器中看到的数字,经由CSS选择器换位HTML中代码之后呈现出来的数字。
先拿到第一级的 b 标签所有值,构建原始价格列表
循环剩余所有b标签,拿到 位置值 和 替换价格 组成字典,存入新构建的一个替换价格列表
根据替换价格列表中的 位置值的价格 和原始价格列表中的价格做替换,
输出原始价格列表,得到真实价格

import requests
from scrapy import Selector
import  re

url = 'http://www.porters.vip/confusion/flight.html'
response = requests.get(url)
html = Selector(text=response.text)
ems = html.xpath('//em[@class="rel"]').extract()
#每个em标签在循环
for em in ems:
    html_em_element = Selector(text=em)
    html_bs= html_em_element.xpath('//b').extract()
    b_first  = html_bs.pop(0)
    html_b_first = Selector(text=b_first)
    base_price = html_b_first.xpath('//i/text()').extract()
    real_prices = []
    for  html_b_next in  html_bs:
        location = re.search('left:(.*?)px', html_b_next, re.S).group(1)
        price = re.search('">(.*?)</b>', html_b_next, re.S).group(1)
        real_prices.append({'location': location, 'price': price})
    for real_price in real_prices:
       location  = real_price.get('location')
       price = real_price.get('price')
       index = int(int(location)/16)
       base_price[index] = price
    print(base_price)

有问题请联系博主:
微信:hrvrap
qq:2580419087

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!