利用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爬虫怎么对列表的内容进行爬取问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。