python正则爬虫无响应

蒙面加菲猫666
  • 13
import requests
import re

content = requests.get('https://book.douban.com/').text
pattern=re.compile('<li.*?"cover".*?href=(.*?)title=(.*?).*"author">(.*?)</div>.*"year">(.*?)</span></li>',re.S)
results = re.findall(pattern, content)
for result in results:
    url, name, author, date = result
    author = re.sub('\s', '', author)
    date = re.sub('\s', '', date)
    print(url, name, author, date)

无响应,大家能告诉我什么原因吗?谢谢啦。

回复
阅读 2k
3 个回答

.*太多了,算法的时间太长

result = re.findall(pattern, content[15000:20000]) # 这个都是秒级的了,何况content长度134383

而且时间复杂度非线性 5000长度,3~4秒 134383长度,估计你跑一天能出来

建议分步正则,一次最好不要超过两个.*,一步一步匹配出你要的结果

我觉得你要是想爬些数据的话,还是不要这么爬了,另外豆瓣有api的。

我觉得还是正则表达式太复杂了,你试试BeautifulSoup吧

宣传栏