怎么用Python编写爬虫代码,一文看懂

下面是一个从网易军事爬取数据的爬虫例子

#2293111-2314544,共21434条
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm
import json
new_data = []
k = 3000
for i in tqdm(range(2293111+3000,2314545)):
    url = f"https://war.163.com/photoview/4T8E0001/{i}.html#p=DNFMCASE4T8E0001NOS"

    response = requests.get(url)
    html = response.text

    soup = BeautifulSoup(html, "html.parser")
    #获取description
    meta_tag = soup.find("meta", {"name": "description"})
    if meta_tag:
        description = meta_tag["content"]
        #print(description)
    #获取source
    textarea_tag = soup.find('textarea', {'name': 'gallery-data'})
    if textarea_tag:
        content = textarea_tag.text.strip()
        # 对 JSON 数据进行预处理,忽略无效的转义字符
        #content = content.encode('utf-8').decode('unicode_escape', 'ignore')
        try:
            data = json.loads(content)
        except:
            continue
        source = data['info']['source']
        #print(source)
    
    k+=1
    new_item = {
        "id":k,
        "text":description,
        "source":source
    }
    new_data.append(new_item)
    
    if k%10==0:
        with open("./从网易军事爬取3000后.json", 'w', encoding='utf-8') as f:  # 写入
                json.dump(new_data, f, indent=4, ensure_ascii=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值