1. 程式人生 > >scrapt中的資料提取,採用js2xml庫

scrapt中的資料提取,採用js2xml庫

這個一個爬去美團的例子,應為資料都是在script中,小心封ip,儘量少執行。

先匯入庫幾個庫

import requests
from bs4 import BeautifulSoup
from lxml import etree
import js2xml

傳送請求,獲取到script裡面的資料

url = "https://sz.meituan.com/meishi/"
headers = {}
response = requests.get(url, headers = headers)
content = response.text
bs = BeautifulSoup(content, "
lxml") l = bs.select("body script")[13].string #獲取到body中第十三個script裡面的資料

然後在利用js2xml方法格式化之後再利用xpath來提取資料

src_text = js2xml.parse(l, encoding='utf-8', debug=False)
print(type(src_text))
src_tree = js2xml.pretty_print(src_text)
print(src_tree)
selector = etree.HTML(src_tree)
content = selector.xpath('
//property[@name="poiId"]/number/@value') name = selector.xpath('//property[@name="title"]/string/text()')

就ok了