我用bs4浏览了一堆网站,从每个页面上抓取一个特定的链接,但我在抓取这个链接时遇到了一个问题.

我已经try 使用获取所有链接.

 soup = BeautifulSoup(browser.page_source,"lxml")
 print(soup.find_all('a'))

我try 了许多其他方法,包括告诉它一个网站的确切地址.

但每次似乎都会返回我想要的链接之外的所有内容.

For context my code goes to pages of this site
https://ce.naco.org/?find=true

These are two of many pages that I am searching for the link in
https://ce.naco.org/?county_info=06019 https://ce.naco.org/?county_info=08045

在"COUNTY CONTACT"下,这些页面中的大多数都有一个链接,这是我想要获取的链接,但我只是找不到方法使其返回,只返回bs4似乎看不见的链接.

我认为这与页面如何根据用户点击的内容加载数据有关,而且由于bs4没有与站点交互,所以它没有加载数据???但这只是一个猜测.

推荐答案

与其抓取页面,不如使用此端点抓取数据:

https://ce.naco.org/get/county?fips=06019

方法如下:

import requests

data = requests.get("https://ce.naco.org/get/county?fips=06019").json()
print(f'{data["county"]["Full_Address"]}\n{data["county"]["County_Website"]}')

输出:

2281 Tulare St<br>Hall Of Records<br>Fresno, CA 93721-2105
http://www.co.fresno.ca.us

这适用于county codes:

import requests

county_codes = ["06019", "08045"]

with requests.Session() as s:
    for county_code in county_codes:
        data = requests.get(f"https://ce.naco.org/get/county?fips={county_code}").json()
        print(f'{data["county"]["Full_Address"]}\n{data["county"]["County_Website"]}')

输出:

2281 Tulare St<br>Hall Of Records<br>Fresno, CA 93721-2105
http://www.co.fresno.ca.us
108 8Th St<br>Glenwood Springs, CO 81601-3355
http://www.garfield-county.com/

Python相关问答推荐

如何记录脚本输出

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

有没有一种方法可以从python的pussompy比较结果中提取文本?

迭代嵌套字典的值

在单个对象中解析多个Python数据帧

Django—cte给出:QuerySet对象没有属性with_cte''''

从Windows Python脚本在WSL上运行Linux应用程序

matplotlib + python foor loop

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

python—telegraph—bot send_voice发送空文件

计算空值

如何使用正则表达式修改toml文件中指定字段中的参数值

Django在一个不是ForeignKey的字段上加入'

Polars时间戳同步延迟计算

关于数字S种子序列内部工作原理的困惑

try 使用RegEx解析由标识多行文本数据的3行头组成的日志(log)文件

如何在polars group_by中将多个行分组到列表中

torch 二维张量与三维张量欧氏距离的计算

使用Mysql Connector通过Python创建Mysql Storec过程