爬取汽车之家新闻
Posted q1ang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取汽车之家新闻相关的知识,希望对你有一定的参考价值。
a.首先伪造浏览器向某个地址发送HTTP请求,获取返回的字符串
import requests
response=requests.get(url=‘地址‘)#get请求 response.content #内容 response.encoding=apparent_encoding #检测编码形式,并设置编码 response.text #自动转码
b.通过Beautifulsoup4解析html格式字符串
from bs4 import BeautifulSoup soup = BeautifulSoup(‘<html>...</html>‘, ‘html.parser‘)#解析嵌套,html.parser解析器,lxml等 div = soup.find(name=‘标签名‘, id=‘li‘) div = soup.find(name=‘标签名‘, _class=‘li‘) div = soup.find(name=‘标签名‘, attrs={‘id‘ = ‘li‘, ‘class‘:‘id‘}) div.text div.attrs div.get(‘href‘) divs = soup.find_all(name=‘标签名‘, id=‘li‘) divs = soup.find_all(name=‘标签名‘, _class=‘li‘) divs = soup.find_all(name=‘标签名‘, attrs={‘id‘ = ‘li‘, ‘class‘:‘id‘}) #find找到匹配成功的第一个 #find_all全部匹配,divs为列表
import requests from bs4 import BeautifulSoup #下载页面 ret=requests.get( url=‘https://www.autohome.com.cn/news/‘ ) # print(ret.apparent_encoding) #检测编码形式 # print(ret.content) #内容 ret.encoding=ret.apparent_encoding #设置编码 # print(ret.text) #自动转码 #解析,获取想要的内容 beautifulsoup4 soup=BeautifulSoup(ret.text,‘html.parser‘) #解析嵌套,html.parser解析器,lxml #find找到匹配成功的第一个 #find_all全部匹配 div=soup.find(name=‘div‘,id=‘auto-channel-lazyload-article‘) li_list=div.find_all(name=‘li‘) for li in li_list: #标题 h3=li.find(name=‘h3‘) if not h3: continue # print(h3.text)#h3.text取文本 #简介 p=li.find(name=‘p‘) # print(p.text) #地址 a=li.find(name=‘a‘) # print(a.attrs)#获取属性 # print(a.get(‘href‘)) print(h3.text,a.get(‘href‘)) print(p.text) print(‘=‘*15) #图片 img=li.find(name=‘img‘) src=img.get(‘src‘) file_name=src.rsplit(‘__‘,maxsplit=1)[1] ret_img=requests.get( url=‘https:‘+src ) with open(file_name,‘wb‘) as f: f.write(ret_img.content)
以上是关于爬取汽车之家新闻的主要内容,如果未能解决你的问题,请参考以下文章