网址:中国保护知识产权网
本次爬取的是国际新闻部分
需要爬取的是文章标题,对应的url、日期和内容
打开开发者模式(Ctrl+Shift+i),找到Network 下的XHR,按(Ctrl+R)进行刷新。
分析Headers
可以发现请求方式是POST,表单数据由pageNumber和cid组成
我们换第二页看看什么数据会发生变化
对比第一页
我们可以发现url没有发生变化,发生变化的只有pageNumber,所以可以通过修改pageNumber来实现批量爬取。
接下来看看这XHR里有什么内容,点击Preview,查看内容
这应该这个地方
点开其中一个看看
可以看到似乎乱码了,不过没关系,先不管这个,一步一步来。
现在已经知道大致思路了,应该可以爬取了
import re
import os
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36 FS"}
import csv
获取json格式的数据
注意: 这是requests.post()
def get_json(data):
url = 'http://ipr.mofcom.gov.cn/ipr/front/www/listN'
r = requests.post(url=url, headers=headers, data=data)
r.status_codea = r.apparent_encoding
print("状态:", r.raise_for_status)
return r.json()
可以发现,居然又没乱码了。
然后我们就可以对数据进行层层剥离
def get_title_url_time(text):
lists = []
head_url = 'http://ipr.mofcom.gov.cn/'
for each in text['pageInfo']['rows'</