爬虫案例——翻页爬取网页所有链接以及链接对应内容

440次阅读
没有评论
爬虫案例——翻页爬取网页所有链接以及链接对应内容

翻页爬取网页所有链接以及对应内容(爬取静态网页未使用框架)

爬取步骤

1.对每一页发送请求
2.获取每一页中的链接地址
3.对链接的内容设置提取规则并爬取
4.储存所有数据为CSV文件

前置步骤

#coding=utf-8 import re import os import pandas as pd from bs4 import BeautifulSoup import requests

观察发现第一页和第二页的网址区别只有最后的pagenow=1和pagenow=2

对每一页进行请求获取链接

start_url='http://www.miit.gov.cn/datainfo/resultSearch?searchType=advancedSearch&categoryTreeId=1128&pagenow=' link=[] for i in range(1,106): start=start_url+str(i)#105页每页的网址 response=requests.get(start) content=response.text#获取网页解析内容 urls=re.findall(r"<a href="(.*?)" target",content)#提取网址,也可以用BeautifulSoup写 urls=list(set(urls))#删除所有重复的链接 link.append(urls)#储存链接 for i in range(0,len(link)): link[i]+='http://www.miit.gov.cn'#组成完整链接 #(urllib.parse.urljoin也可以进行链接拼接)

设置链接内容的爬取规则提取需要的信息并储存

table=pd.DataFrame() for i in link: content=requests.get(i).text soup=BeautifulSoup(content,'lxml')#用lxml解析 label={i: soup.find_all('th')[i].string for i in range(0,len(soup.find_all('th')))}#提取标签 feature={i: soup.find_all('td')[i].string for i in range(0,len(soup.find_all('td')))}#提取内容 del feature[7],feature[list(feature)[1]]#处理内容,去除不要的 data=pd.DataFrame([label,feature],index=[0,1])#转化成表 data.to_csv('test.csv',index=False,encoding='utf-8-sig',header=None) data=pd.read_csv('test.csv')#通过设置header为None再读取将label变成表头 tabel=table.append(data)#将所有数据拼接起来 table=pd.concat([table,pd.DataFrame(link,columns=['链接'])],axis=1)#将链接的地址放到表最后一列 table.to_csv('326期汽车数据.csv',index=False,encoding='utf-8-sig')#数据储存为326期汽车数据 os.remove('test.csv')#删除中途产生的文件

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-25发表,共计1552字。
新手QQ群:570568346,欢迎进群讨论 Python51学习