我们在爬取数据时,往往是连续爬取上百个页面,本篇以爬取赶集网为例,爬取大规模的数据。步骤如下:
爬取1级商品链接
爬取2级详情信息
爬取商品详情页
多进程爬取数据
一、爬取1级商品链接
新建一个Python文件,名字命名为my_channel_extracing,用于抓取大类商品链接。以抓取赶集网http://bj.ganji.com/wu/上二手商品为例,右侧的各类商品便是我们需要抓取的大类商品。
大类链接.jpg
①request页面
引入requests对http://bj.ganji.com/wu/进行访问,并输出打印结果,查询是否访问成功。
代码如下:
import requests
url='http://bj.ganji.com/wu/'
wb_data = requests.get(url)
print(wb_data.text)
requests页面
②解析页面
引入BeautifulSoup对网页进行解析,打印输出结果,查看网页解析是否成功。
代码如下:
import requests
from bs4 import BeautifulSoup
url='http://bj.ganji.com/wu/'
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text.'lxml')
print(soup)
解析网页
③爬取大类链接
检查需要爬取的网页,定位链接位置,利用for循环输出所爬取的链接。通过观察网页,能发现网页的绝对路劲为http://bj.ganji.com,定义网页绝对路劲,最终输出完整的爬取页面。
import requests
from bs4 import BeautifulSoup
host_url = 'http://bj.ganji.com'#定义网页绝对路径
url = 'http://bj.ganji.com/wu/'
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')
links = soup.select('#wrapper > div.content > div > div > dl > dt > a')
for link in links:
print(host_url+i.get('href'))
爬取大类链接
二、爬取2级商品链接
①爬取2级商品链接
将爬取的1级商品链接放入page_link,通过解析page_link,并再次利用for函数,输出2级商品链接。
import requests
from bs4 import BeautifulSoup
host_url = 'http://bj.ganji.com'#定义网页绝对路径
url = 'http://bj.ganji.com/wu/'
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')
links = soup.select('#wrapper > div.content > div > div > dl > dt > a')
for link in links:
page_link = host_url + link.get('href')#1级网页
wb_data = requests.get(page_link)
soup = BeautifulSoup(wb_data.text,'lxml')
type_links = soup.select('#seltion > div > dl > dd