|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在http://dongman.2345.com/top/网页上爬取动漫排行,但是在用re处理爬取的动漫简介的时候,它漏下了一个简介,求大神们帮忙找原因。
- import requests
- import re
- #获取页面内容
- def getHTMLText(url):
- try:
- r = requests.get(url,timeout = 30)
- r.raise_for_status()
- r.encoding = r.apparent_encoding
- return r.text
- except:
- return ""
- #处理页面内容
- def fillAniList(ulist,html):
- n = re.findall(r'alt\=".*?"',html)
- #就是在下面这部出的问题
- it = re.findall(r'\<p class\="pTxt pIntroShow"\>.*?\<',html)
- for i in range(len(n)):
- name = n[i].split('=')[1]
- intro = it[i].split('>')[1]
- intro = intro.split('<')[0]
- ulist.append(name)
- ulist.append(intro)
- #输出页面内容
- def printAniList(ulist):
- for i in range(len(ulist)/2):
- print(i+1)
- print(ulist[2*i])
- print(ulist[2*i+1])
- #主函数
- def main():
- url = "http://dongman.2345.com/top/"
- uinfo = []
- html = getHTMLText(url)
- fillAniList(uinfo,html)
- printAniList(uinfo)
- main()
复制代码
经过筛查,我发现排名第23名的简介不见了。
本帖最后由 suchocolate 于 2020-4-19 16:52 编辑
以下是我的方法,仅供参考。
- import requests
- import re
- url = 'http://dongman.2345.com/top/'
- headers = {'user-agent': 'firefox'}
- r = requests.get(url, headers=headers)
- r.encoding = 'gbk'
- cart_name = re.findall(r'_blank">(.*?)<', r.text)[0:50]
- cart_info = re.findall(r'pIntroShow">(.*?)<', r.text, re.S)
- print(cart_name)
- print(cart_info)
复制代码
|
|