爬虫,正则。requests从网站正则拿&# 32034; &# 23612; 拿不到。。

假设网站是

https://www.amazon.co.jp/Dell...

然后在源码里面有

id="productTitle"

我用requests去取源码

requests.get(url)

源码里面

clipboard.png

我怎么用re去正则都拿不到。。。崩溃啊。。
求助大神们。。。这玩意要怎么拿?

PS:
这一串码写到html里面。就直接转码了。。这是什么情况?有什么规则吗?

阅读 3k
1 个回答

建议使用 BeautifulSoup

import requests
from bs4 import BeautifulSoup


r =requests.get('https://www.amazon.co.jp/Dell-%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-ALIENWARE-17-18Q12/dp/B06XZT4NV9/ref=sr_1_1?s=computers&ie=UTF8&qid=1501419923&sr=1-1&keywords=Dell+%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3+ALIENWARE+17+4K%E3%83%A2%E3%83%87%E3%83%AB+18Q12%2FWin10%2F17.3UHD%2F32GB%2F512GB+SSD%2B1TB%2FGeForce+GTX1080')

t = r.text

soup = BeautifulSoup(t, "html.parser")

i = soup.find(id='productTitle')

text = i.text.strip()

非得使用正则表达式的话

import requests
import re


r =requests.get('https://www.amazon.co.jp/Dell-%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-ALIENWARE-17-18Q12/dp/B06XZT4NV9/ref=sr_1_1?s=computers&ie=UTF8&qid=1501419923&sr=1-1&keywords=Dell+%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%8E%E3%83%BC%E3%83%88%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3+ALIENWARE+17+4K%E3%83%A2%E3%83%87%E3%83%AB+18Q12%2FWin10%2F17.3UHD%2F32GB%2F512GB+SSD%2B1TB%2FGeForce+GTX1080')

t = r.text

regex = re.compile(r'<div id="titleSection".*?">.*?<.*?>.*?<.*?>\s*(.*?)\s*</span>', re.S)

text = regex.findall(t)[0]

(以上代码在 Python3 中测试通过)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题