beautifulsoup抓取< record >

本文介绍了如何使用BeautifulSoup和正则表达式从网页中提取<a>标签的href和title属性,通过实例展示了如何获取并整理链接列表。

写了个爬爬去标题和内容,用bs4获取a标签的href和text时,获取不到,网页源代码如下去

解决办法:利用re

 

main_page = BeautifulSoup(resp.text,"html.parser")
    #audit_div = main_page.find("div",attrs={"class":"ny-list"})
audit_div = main_page.find("div", attrs={"id": "4009681"})
obj = re.compile(r"<a  href='(?P<href>.*?)' class='bt_link' title='(?P<title>.*?)'>",re.S)
result = obj.finditer(str(audit_div))
    child_href_list = []
    for it in result:
        child_href = domain + it.group('href')
        title = it.group('title')
        child_href_list.append(child_href)
        print(child_href,title)

效果如下

 

### 使用Python编写爬虫抓取居民消费支出数据 为了实现这一目标,首先需要了解目标网站的结构以及其中存储居民消费支出数据的方式。通常情况下,这类数据可能会被嵌入网页中的特定HTML标签内或是以PDF文件或Excel表格的形式存在[^3]。 #### 分析目标网站结构 在开始编码前,应当仔细分析目标网站上的居民消费支出信息发布模式。这一步骤至关重要,因为不同的发布形式决定了后续使用的解析方法和技术栈。如果数据位于常规网页元素中,则主要关注对应的HTML标签;如果是文档格式,则需准备额外工具进行读取和转换。 ```python import requests from bs4 import BeautifulSoup url = 'http://example.com/resident_consumption_data' # 假设的目标网址 response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') data_elements = soup.find_all('div', class_='expense-data') # 替换为实际的标签和类名 ``` 这段代码展示了如何利用`requests`库获取网页内容,并通过`BeautifulSoup`解析HTML文档,定位到含有居民消费支出信息的具体位置[^1]。 #### 数据提取与保存 一旦确认了所需的信息源及其表现形式之后,就可以着手设计具体的逻辑来抽取有用的数据项并将它们妥善存档: - 对于纯文本型别的字段可以直接访问`.text`属性; - 如果遇到链接指向外部资源(如CSV/JSON/XLSX),则应进一步下载并处理这些附件; - 针对非结构性的内容比如图片图表等多媒体素材,考虑采用OCR光学字符识别或其他图像理解算法辅助解读。 ```python for element in data_elements: record = { "date": element.select_one('.date').text.strip(), "category": element.select_one('.category').text.strip(), "amount": float(element.select_one('.amount')['value']), # 假设有这样的属性 } with open('consumption_records.csv', mode='a+', newline='') as file: writer = csv.writer(file) writer.writerow([record['date'], record['category'], record['amount']]) ``` 上述片段说明了一个简单的循环过程用于遍历所有匹配的对象实例化成字典对象后追加至CSV文件之中。 #### 处理复杂情况下的数据采集 当面临更复杂的场景时——例如JavaScript动态加载的数据或者是受保护API接口返回的结果——可能还需要引入其他高级特性支持,像Selenium模拟浏览器行为、PyQuery简化DOM操作或者AioHttp异步请求提高效率等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值