爬取豆瓣图书Top250书籍信息

    xiaoxiao2021-03-25  160

    小白一个,接触Python一个多月了,自己感觉最有趣的莫过于利用Python进行网络爬虫,原来都是看着别人的博客把代码抄一遍,今天时间稍微多一些,自己写了一个小爬虫,从分析网页源代码开始,一步步对代码进行设计与完善,捣腾了一中午,终于算是成功了,心情还是蛮激动。下面把代码跟大家分享一下。

    豆瓣图书Top250网址:https://book.douban.com/top250

    1、首先打开Google浏览器开发者模式(F12或者右键点击检查)

    2、浏览网页,发现250本图书一共分成了10页,利用开发者工具找到每一页的url

    利用Beautifulsoup跟requests获取每一页的url

    import requests import re from bs4 import BeautifulSoup content = requests.get('https://book.douban.com/top250').text Soup = BeautifulSoup(content,'lxml') all_url = Soup.find('div',class_='paginator').find_all('a') list = [] for url in all_url: url = url['href'] list.append(url) use_url = ['https://book.douban.com/top250'] ext_url = list[0:-1]#舍弃最后一个url use_url.extend(ext_url)#将两个列表合并

    3、利用开发者工具查看网页格式

    我只抓取了图书的链接、书名以及作者,通过开发者工具发现图书的信息都在table标签里面。

    通过正则表达式将信息提取出来

    import requests import re from bs4 import BeautifulSoup content = requests.get('https://book.douban.com/top250').text Soup = BeautifulSoup(content,'lxml') all_url = Soup.find('div',class_='paginator').find_all('a') list = [] for url in all_url: url = url['href'] list.append(url) use_url = ['https://book.douban.com/top250'] ext_url = list[0:-1]#舍弃最后一个url use_url.extend(ext_url)#将两个列表合并 for i in use_url: response = requests.get(i,'lxml') pattern = re.compile('<table.*?pl2.*?href="(.*?)".*?title="(.*?)".*?pl">(.*?)/.*?</table>',re.S) results = re.findall(pattern,content) for result in results: href,name,author = result#分别对href、name、author进行赋值 print(href,name,author.strip())

    4、运行程序

    注:博主只是个小白,想通过博客记录一下自己学习Python的过程,代码可能有很多不完善的地方,希望能与大家多多交流学习。

    转载请注明原文地址: https://ju.6miu.com/read-2761.html

    最新回复(0)