首页 > 其他分享 >使用requests和BeautifulSoup对北京市政百姓信件进行爬取

使用requests和BeautifulSoup对北京市政百姓信件进行爬取

时间:2023-09-02 21:56:43浏览次数:43  
标签:url 22% request BeautifulSoup 爬取 onclick requests page

复制代码

    for page in range(start_page, end_page + 1):
        url = url.format(page)
        request = urllib.request.Request(url, headers=headers)
        response = urllib.request.urlopen(request)
        contents = response.read()
        # a标签中前一个是信件的类型,后面那个是信件编号
        # 发送GET请求获取网页内容
        # 使用BeautifulSoup解析网页内容
        soup = BeautifulSoup(contents, "html.parser")
        a_tags = soup.find_all('a', onclick=True)
复制代码

整个代码为(爬取的结果,根据不同类型存入了不同的txt文件中)

复制代码
import requests
from bs4 import BeautifulSoup
import urllib.request
import json
import re

def huoqu():
    url = "https://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow"  # 替换为目标网站的URL
    cookie = "__jsluid_s=7e6494284621930c061e56e28c73fe04; arialoadData=false; __jsluid_h=babf6155559102d42f5b7f0b024bab8e;" \
             "sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22188a626b5289cc-04b250d08e6751-7e56547b-1638720-188a626b529108d%22%7D;" \
             " sensorsdata_is_new_user=true; bjah7webroute=83fabc8af7a68a44338f4ee9b2831e7d; BJAH7WEB1VSSTIMEID=4065C3D9D249C359ABB3E1EBF7BD9553; " \
             "JSESSIONID=MDkwMjUwODgtM2E5YS00N2QzLWExYWItMmE2OWJjZTM1ZmI0; _va_ref=%5B%22%22%2C%22%22%2C1686446660%2C%22https%3A%2F%2Fcn.bing.com%2F%22%5D;" \
             " _va_ses=*; route=c5730edea4c5f2b5d7a6534850353a0c; JSESSIONID=56EE4BE6A09AA5BE642BA33CE292B0D3; " \
             "_va_id=d80e32c2da04fb2f.1686412321.2.1686447410.1686446660."
    user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)" \
                 " Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"
    headers = {"User-Agent": user_agent, "Cookie": cookie}
    request = urllib.request.Request(url, headers=headers)
    response = urllib.request.urlopen(request)
    contents = response.read()
    # a标签中前一个是信件的类型,后面那个是信件编号
    # 发送GET请求获取网页内容
    # 使用BeautifulSoup解析网页内容
    soup = BeautifulSoup(contents, "html.parser")
    return soup


def huoqu1(start_page, end_page):
    url = "https://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow"  # 替换为目标网站的URL
    cookie = "__jsluid_s=7e6494284621930c061e56e28c73fe04; arialoadData=false; __jsluid_h=babf6155559102d42f5b7f0b024bab8e;" \
             "sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22188a626b5289cc-04b250d08e6751-7e56547b-1638720-188a626b529108d%22%7D;" \
             " sensorsdata_is_new_user=true; bjah7webroute=83fabc8af7a68a44338f4ee9b2831e7d; BJAH7WEB1VSSTIMEID=4065C3D9D249C359ABB3E1EBF7BD9553; " \
             "JSESSIONID=MDkwMjUwODgtM2E5YS00N2QzLWExYWItMmE2OWJjZTM1ZmI0; _va_ref=%5B%22%22%2C%22%22%2C1686446660%2C%22https%3A%2F%2Fcn.bing.com%2F%22%5D;" \
             " _va_ses=*; route=c5730edea4c5f2b5d7a6534850353a0c; JSESSIONID=56EE4BE6A09AA5BE642BA33CE292B0D3; " \
             "_va_id=d80e32c2da04fb2f.1686412321.2.1686447410.1686446660."
    user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)" \
                 " Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"
    headers = {"User-Agent": user_agent, "Cookie": cookie}
    f1 = open('G:/python/pythonProject/信件爬取/1.txt', 'a')
    f2 = open('G:/python/pythonProject/信件爬取/2.txt', 'a')
    f3 = open('G:/python/pythonProject/信件爬取/3.txt', 'a')
    for page in range(start_page, end_page + 1):
        url = url.format(page)
        request = urllib.request.Request(url, headers=headers)
        response = urllib.request.urlopen(request)
        contents = response.read()
        # a标签中前一个是信件的类型,后面那个是信件编号
        # 发送GET请求获取网页内容
        # 使用BeautifulSoup解析网页内容
        soup = BeautifulSoup(contents, "html.parser")
        a_tags = soup.find_all('a', onclick=True)
        for element in a_tags:
            onclick_value = element["onclick"]
            match = re.search(r"letterdetail\('(\d+)', '([^']+)'\)", onclick_value)
            if match:
                onclick_param1 = match.group(1)
                # print(type(onclick_param1))
                onclick_param2 = match.group(2)
                if onclick_param1 == '1':
                    f1.write(onclick_param2+'\n')
                if onclick_param1 == '2':
                    f2.write(onclick_param2+'\n')
                if onclick_param1 == '3':
                    f3.write(onclick_param2+'\n')
                print(f"onclick param 1: {onclick_param1}, onclick param 2: {onclick_param2}")
    f1.flush()
    f2.flush()
    f3.flush()
    f1.close()
    f2.close()
    f3.close()


if __name__ == '__main__':
    huoqu1(1, 173)

标签:url,22%,request,BeautifulSoup,爬取,onclick,requests,page
From: https://www.cnblogs.com/lss1226/p/17674262.html

相关文章

  • requests上传文件
    requests上传文件目录requests上传文件单文件上传多文件上传指定文件和类型既要上传文件又要上传参数文件接收参考资料requests库中的files参数可以用来上传文件,它是一个字典类型的变量,其中键是文件的字段名,值可以是以下几种类型之一:字符串类型:表示文件路径,会自动打开文件并......
  • Selenium与requests共存的一个库 selenium-wire
    背景在工作中UI自动化中可能会需要用到API来做一些数据准备或清理的事情,那UI操作是略低效的,但API操作相对高效。而实战课就有这样一个案例,不过那个案例是UI操作和API分开的。极少会遇到这样的场景,我selenium操作网页,比如登录,应该底层也是有响应数据的,比如token之类的,那我是否可......
  • 爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据
    前言 豆瓣网是一个具有影响力的电影评论网站,其中包含大量的用户评论和评分数据。这些数据可以用于研究电影市场和用户观影习惯,同时还可以用于电影推荐算法以及在线视频网站的用户行为分析等方面,因此对于想要学习数据分析和机器学习的人来说,爬取豆瓣网电影评论数据是一个很好的练......
  • request请求但脚本爬取
    importrequestsfromlxmlimportetreeurl="https://duanzixing.com/"headers={'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/116.0.0.0Safari/537.36Edg/116.0.1938.62�......
  • Python+Requests示例记录【2023-08-27】
    importrequestsimportjsonpayload={"userNo":"用户","password":"密码"}response=requests.post(url,json=payload)print(response)print('---------------------------')print(response.status_code)print('......
  • 学会Python Requests库+Cookies模拟自动登录!
    importrequestsurl="https://my.cheshi.com/user/"headers={"User-Agent":"Mozilla/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit/537.36(KHTML,likeGecko)Chrome/116.0.0.0Safari/537.36"}res=requests.get(......
  • 使用Java Xpath 爬取某易云歌曲
    本文使用Javaxpath爬取某易云歌曲,并下载至本地。代码仅用于个人学习使用,欢迎各位大佬提出建议。1、添加依赖<dependency><groupId>cn.wanghaomiao</groupId><artifactId>JsoupXpath</artifactId><version>2.2</version>......
  • BeautifulSoup:学习使用BeautifulSoup库进行HTML解析和数据提取。
    BeautifulSoup是一个用于解析HTML和XML文档的Python库。它可以帮助我们从网页中提取数据,并以易于操作的方式进行分析。以下是使用BeautifulSoup进行HTML解析和数据提取的基本语法:安装BeautifulSoup库:首先,你需要在你的Python环境中安装BeautifulSoup库。可以使用以下命令进行安......
  • Python-大文件上传requests-toolbelt
    一、简介requests.post发送文件的方式是把所有文件读取内存中,再构建请求发送出去。当发送大文件时候(好几个G)就会导致内存不足OOM默认使用的requests.post较难做到分段文件发送(大概思路:先计算原文件md5,再切分文件发送,到接收端组合再计算md5,较麻烦不推荐,可参考:Python之requests模......
  • 什么情况下适合选择Socks5代理来提高爬取速度
    在爬虫领域,速度是至关重要的,因为更快的爬取速度意味着更高效的数据采集和处理能力。而选择正确的代理类型是提高爬取速度的关键之一。今天,我就跟大家一起讨论一下,到底什么情况下适合选择Socks5代理才能提高爬取速度。首先,让我们来了解一下Socks5代理的特点和工作原理。Socks5代理是......