码迷,mamicode.com
首页 > 其他好文 > 详细

爬取汽车之家新闻

时间:2018-07-01 15:19:25      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:ann   div   new   color   通过   第一个   获取   TE   pre   


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)

 

爬取汽车之家新闻

标签:ann   div   new   color   通过   第一个   获取   TE   pre   

原文地址:https://www.cnblogs.com/q1ang/p/9250057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!