利用Python爬虫怎么对列表的内容进行爬取?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
import requests from bs4 import BeautifulSoup
由于很多网站定义了反爬策略,所以进行伪装一下
headers = { 'User-Agent': 'Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 87.0.4280.141Safari / 537.36' }
在这里User-Agent只是其中的一种方式,而且大家的User-Agent可能不同。
爬取数据main代码
url = 'https://q.cnblogs.com/list/unsolved?' fp = open('blog', 'w', encoding='utf-8') for page in range(1,26): page = str(page) param = { 'page':page } page_text = requests.get(url=url,params=param,headers=headers).text page_soup = BeautifulSoup(page_text,'lxml') text_list = page_soup.select('.one_entity > .news_item > h3') for h3 in text_list: text = h3.a.string fp.write(text+'\n') print('第'+page+'页爬取成功!')
注意一下这里,由于我们需要的是多张页面的数据,所以在发送请求的url中我们就要针对不同的页面发送请求,https://q.cnblogs.com/list/unsolved?page=
我们要做的是在发送请求的url时候,根据参数来填充页数page,
代码实现:
url = 'https://q.cnblogs.com/list/unsolved?' for page in range(1,26): page = str(page) param = { 'page':page } page_text = requests.get(url=url,params=param,headers=headers).text
将所有的h3数组拿到,进行遍历,通过取出h3中a标签中的文本,并将每取出来的文本写入到文件中,由于要遍历多次,所以保存文件在上面的代码中。
text_list = page_soup.select('.one_entity > .news_item > h3') for h3 in text_list: text = h3.a.string fp.write(text+'\n')
完整代码如下:
import requests from bs4 import BeautifulSoup if __name__ == '__main__': headers = { 'User-Agent': 'Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 87.0.4280.141Safari / 537.36' } url = 'https://q.cnblogs.com/list/unsolved?' fp = open('blog', 'w', encoding='utf-8') for page in range(1,26): page = str(page) param = { 'page':page } page_text = requests.get(url=url,params=param,headers=headers).text page_soup = BeautifulSoup(page_text,'lxml') text_list = page_soup.select('.one_entity > .news_item > h3') for h3 in text_list: text = h3.a.string fp.write(text+'\n') print('第'+page+'页爬取成功!')
关于利用Python爬虫怎么对列表的内容进行爬取问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。