利用Python爬虫怎么对列表的内容进行爬取

  介绍

利用Python爬虫怎么对列表的内容进行爬取?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

首先导入请求和BeautifulSoup

import 请求   得到bs4  import  BeautifulSoup

由于很多网站定义了反爬策略,所以进行伪装一下

headers =, {   ,,,& # 39;用户代理# 39;:,& # 39;Mozilla /, 5.0 (WindowsNT10.0; Win64 x64), AppleWebKit /, 537.36 (KHTML, likeGecko), Chrome /, 87.0.4280.141Safari /, 537.36 & # 39;   以前,,}

在这里用户代理只是其中的一种方式,而且大家的用户代理可能不同。

爬取数据主要代码

url =, & # 39; https://q.cnblogs.com/list/unsolved?& # 39;   fp =,开放才能(& # 39;博客# 39;,,& # 39;w # 39;,,编码=& # 39;utf - 8 # 39;)   for 才能;page 拷贝范围(26):   ,,,page =, str(页面)   ,,,param =, {   ,,,,,& # 39;页面# 39;:页面   ,,,}   ,,,page_text =, requests.get (url=url, params=参数,头=标题)。text   ,,,page_soup =, BeautifulSoup (page_text & # 39; lxml # 39;)   ,,,text_list =, page_soup.select (& # 39; .one_entity 祝辞,.news_item 祝辞,h3 # 39;)   ,,,for  h3 拷贝text_list:   ,,,,,text =h3.a.string   ,,,,,fp.write(文本+ & # 39;\ n # 39;)   ,,,print(& # 39;第& # 39;+页+ & # 39;页爬取成功! & # 39;)

注意一下这里,由于我们需要的是多张页面的数据,所以在发送请求的url中我们就要针对不同的页面发送请求,<代码> https://q.cnblogs.com/list/unsolved?代码页=我们要做的是在发送请求的url时候,根据参数来填充页页面数,
代码实现:

,, url =, & # 39; https://q.cnblogs.com/list/unsolved?& # 39;   for 才能;page 拷贝范围(26):   ,,,page =, str(页面)   ,,,param =, {   ,,,,,& # 39;页面# 39;:页面   ,,,}   page_text 才能=,requests.get (url=url, params=参数,头=头)。文本

将所有的h3数组拿到,进行遍历,通过取出h3中一个标签中的文本,并将每取出来的文本写入到文件中,由于要遍历多次,所以保存文件在上面的代码中。

text_list =, page_soup.select (& # 39; .one_entity 祝辞,.news_item 祝辞,h3 # 39;)   ,,,for  h3 拷贝text_list:   ,,,,,text =h3.a.string   ,,,,,fp.write(文本+ & # 39;\ n # 39;)

完整代码如下:

import 请求   得到bs4  import  BeautifulSoup   if  __name__ ==, & # 39; __main__ # 39;:   headers 才能=,{   ,,,& # 39;用户代理# 39;:,& # 39;Mozilla /, 5.0 (WindowsNT10.0; Win64 x64), AppleWebKit /, 537.36 (KHTML, likeGecko), Chrome /, 87.0.4280.141Safari /, 537.36 & # 39;   ,,}   时间=url 才能;& # 39;https://q.cnblogs.com/list/unsolved?& # 39;   fp =,开放才能(& # 39;博客# 39;,,& # 39;w # 39;,,编码=& # 39;utf - 8 # 39;)   for 才能;page 拷贝范围(26):   ,,,page =, str(页面)   ,,,param =, {   ,,,,,& # 39;页面# 39;:页面   ,,,}   ,,,page_text =, requests.get (url=url, params=参数,头=标题)。text   ,,,page_soup =, BeautifulSoup (page_text & # 39; lxml # 39;)   ,,,text_list =, page_soup.select (& # 39; .one_entity 祝辞,.news_item 祝辞,h3 # 39;)   ,,,for  h3 拷贝text_list:   ,,,,,text =h3.a.string   ,,,,,fp.write(文本+ & # 39;\ n # 39;)   ,,,印刷(& # 39;第& # 39;+页+ & # 39;页爬取成功! & # 39;)

关于利用Python爬虫怎么对列表的内容进行爬取问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

利用Python爬虫怎么对列表的内容进行爬取