全部版块 我的主页
论坛 数据科学与人工智能 人工智能 机器学习
4100 3
2018-04-03
悬赏 22 个论坛币 已解决
用正则表达式爬取豆瓣读书网站 链接 书名 作者 年份,电脑一直卡着为啥?(附代码和截屏,Spyder和cmd都运行不出来),好几次了都是这样,难道正则表达式有问题 还是电脑问题。
import requests
import re
content = requests.get('https://book.douban.com/').text
pattern = re.compile('<li.*?cover.*?href="(.*?)".*?title="(.*?)".*?more-meta.*?author">(.*?)</span>.*?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)
网站源代码 Spyder运行过程 1522761098(1).png

最佳答案

15738812523 查看完整内容

应该是正则太复杂卡死了程序,建议使用beautifulsoup4,xpath等解析库。如果非要用正则的话,一层一层剥离,不要只通过一个正则表达式搞定,比如先把某个div拨出来,然后里面的内容一层一层解析。(本人百度的)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-4-3 21:19:55
应该是正则太复杂卡死了程序,建议使用beautifulsoup4,xpath等解析库。如果非要用正则的话,一层一层剥离,不要只通过一个正则表达式搞定,比如先把某个div拨出来,然后里面的内容一层一层解析。(本人百度的)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-3 21:39:02
15738812523 发表于 2018-4-3 21:37
应该是正则太复杂卡死了程序,建议使用beautifulsoup4,xpath等解析库。如果非要用正则的话,一层一层剥离, ...
我的目的是想运行出来 该怎么解决呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-5-2 18:18:46
我建议也用 BS
你可以用一个叫  regex101 的网站测试自己的表达式正不正确。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群