Python 爬虫 - 获取百度关键字搜索内容

Python 爬虫

获取百度关键字搜索内容

https://www.cnblogs.com/w0000/p/bd_search_page.html
Github

  • headers内的参数,仅有UA时,返回结果不完整,找个request头,增加一些参数。
import requests
if __name__ == '__main__':
    #输入搜索关键字
    keyword = input("keyword:")
    url = 'https://www.baidu.com/s?ie=UTF-8&wd='+str(keyword)
    #关键字->参数 wd
    headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,'
                          '*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
                'Accept-Encoding': 'gzip, deflate, br',
                'Accept-Language': 'zh-CN,zh;q=0.9',
                'Cache-Control': 'max-age=0',
                'Connection': 'keep-alive',
                'Cookie': 'BIDUPSID=A9CF2B5EF23713E9B3AB7A1C14D4C39C; PSTM=1615628417; '
                          'BAIDUID=BFB5E80B14EAC333F6595234A98229D4:FG=1; '
                          'BDUSS'
                          '=VMyQ2dOVWNQY345S1FBa2hnVGstNjRIbWpKbFM3WnpHS1JRQmFvaXdyc3J3WHBnRVFBQUFBJCQAAAAAAAAAAAEAAAC0nX6jxuG62rDX0~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACs0U2ArNFNgR; BDUSS_BFESS=VMyQ2dOVWNQY345S1FBa2hnVGstNjRIbWpKbFM3WnpHS1JRQmFvaXdyc3J3WHBnRVFBQUFBJCQAAAAAAAAAAAEAAAC0nX6jxuG62rDX0~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACs0U2ArNFNgR; __yjs_duid=1_bc5d8acf3d5efe6396879160d8c1727b1618473293154; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_WISE_SIDS=107313_110085_127969_128698_164869_168389_175756_176678_177060_177094_177168_177370_177413_177474_178328_178602_178804_179348_179368_179402_179428_180407_180434_180435_180513_180641_180654_180757_180856_180870_181125_181218_181271_181370_181398_181428_181433_181582_181628_181646_181660_181667_181808_181827_181984_182025_182076_182194_182243_182258_182273_182331_182382_182412_182462_182550_182586_182612_182668; BDICON=10294984.98; BDPASSGATE=IlPT2AEptyoA_yiU4VKI3kIN8efRMPG4HB8JS5p63lStfCaWmhH3BrUzWz0HSieXBDP6wZTXdMsDxXTqXlVXa_EqnBsZolpOaSaXzKGoucHtVM69-t5yILXoHUE2sA8PbRhL-3MEF2ZELlMvcgjchQZrchW8z3IcnwL7hy47ifaADYjyZVm2r7m-Z9sJLCPAPNu594rXnEpKKSm0Ut0lTS8yqC1yM8gvzw0ag1A7A3D5rkoXGurSRvAa1Fz5BJV2BxCyGwC78qSo0-MvrpckVEIdnUSI7tC; delPer=0; SE_LAUNCH=5%3A1627379664; MSA_PBT=98; MSA_ZOOM=1056; BD_CK_SAM=1; BD_HOME=1; BAIDUID_BFESS=BFB5E80B14EAC333F6595234A98229D4:FG=1; COOKIE_SESSION=3839_0_9_9_25_6_0_0_9_2_1_0_3737_0_9_0_1627380134_0_1627380125%7C9%2316622_17_1627218664%7C9; BD_UPN=12314753; H_PS_645EC=c90a2NhsDXypUAYkVFE5oVmVt7WaXl0YOFIPxZuF1ec6LOHjc%2FW3M66duU4; BA_HECTOR=0081840h0k800k0k291gfvpcd0q; BDSVRTM=58; MSA_WH=300_634; MSA_PHY_WH=600_1268; wpr=0',
                'Host': 'www.baidu.com',
                'Referer': 'https://www.baidu.com/',
                'sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"',
                'sec-ch-ua-mobile': '?1',
                'Sec-Fetch-Dest': 'document',
                'Sec-Fetch-Mode': 'navigate',
                'Sec-Fetch-Site': 'same-origin',
                'Sec-Fetch-User': '?1',
                'Upgrade-Insecure-Requests': '1',
                'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36'}
    rsp = requests.get(url=url,headers=headers)
    page_text = rsp.text
    filename = keyword + '.html'
    #将结果保存到本地html
    with open(filename,'w+',encoding='utf-8') as fp:
        fp.write(str(page_text))
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python爬虫可以用于从百度新闻获取多个关键字的相关新闻信息。首先,我们需要导入`requests`和`beautifulsoup4`库来发送HTTP请求并解析网页内容。 接下来,我们可以编写一个函数,其参数为关键字列表,用于获取百度新闻中相关关键字的新闻。函数的主要步骤如下: 1. 定义一个空的新闻列表来存储爬取到的新闻信息。 2. 遍历关键字列表,对于每个关键字,构建一个百度新闻的URL链接。 3. 使用`requests`库发送HTTP GET请求,并将响应的内容保存为HTML格式。 4. 使用`beautifulsoup4`库来解析HTML内容,并提取出新闻信息。可以根据需要提取新闻标题、来源、时间等相关信息。 5. 将提取到的新闻信息存储到新闻列表中。 6. 继续遍历下一个关键字,重复上述步骤。 7. 返回新闻列表作为函数的输出。 下面是一个示例代码: ```python import requests from bs4 import BeautifulSoup def get_news(keywords): news_list = [] for keyword in keywords: url = f"https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word={keyword}" response = requests.get(url) html_content = response.text soup = BeautifulSoup(html_content, "html.parser") news_items = soup.find_all("div", class_="result") for item in news_items: title = item.find("h3").get_text() source = item.find("span", class_="c-color-gray").get_text() time = item.find("span", class_="c-color-gray2").get_text() news_list.append({ "title": title, "source": source, "time": time }) return news_list ``` 我们可以调用这个函数,传入关键字列表来获取百度新闻中相关的新闻信息。例如: ```python keywords = ["Python", "爬虫", "数据分析"] news = get_news(keywords) for item in news: print(item["title"]) print(item["source"]) print(item["time"]) print() ``` 以上就是使用Python爬虫百度新闻获取多个关键字相关新闻的一个简单示例。当然,具体的实现方式还可以根据具体需求进行调整和优化。 ### 回答2: Python爬虫是一种利用Python编程语言编写的程序,可以自动化地获取互联网上的信息。百度新闻是百度搜索引擎中的一个板块,提供了各种新闻资讯。多关键字指的是可以通过设置多个关键字搜索获取更准确的结果。 使用Python爬虫爬取百度新闻多关键字的步骤如下: 1. 导入必要的库,例如requests、bs4等。 2. 设置搜索的URL,即百度新闻的搜索接口,可以在URL中加入关键字等参数。 3. 调用requests库发送HTTP请求,获取返回的网页内容。 4. 使用BeautifulSoup库解析网页内容,提取新闻信息。 5. 遍历解析后的结果,提取所需的信息,例如标题、摘要、日期等。 6. 可以将提取到的信息保存到本地文件或数据库中。 7. 可以在代码中设置循环、分页等功能,获取更多的新闻信息。 8. 可以根据需要对获取的新闻信息进行数据清洗、分析等。 使用Python爬虫爬取百度新闻多关键字可以帮助我们快速获取感兴趣的新闻内容,节省人工搜索的时间和精力。但在进行爬取时,需要遵守相关法律法规,尊重网站的规定,并确保合法安全地使用爬虫技术。 ### 回答3: Python爬虫可以用来抓取百度新闻的多个关键字。首先,我们需要导入必要的库,如requests用于发送HTTP请求,beautifulsoup用于解析网页内容。 然后,我们可以通过构造URL来搜索百度新闻。URL的格式通常包括搜索关键字、起始页码和每页显示的新闻数量等。我们可以使用字符串拼接的方式构造URL,其中搜索关键字可以是多个关键字的组合,通过连接符进行拼接。 接下来,我们可以使用requests库发送get请求获取网页内容。将构造好的URL作为参数传递给requests.get()方法,然后使用response.text来获取网页的HTML源代码。 然后,我们可以使用beautifulsoup库对网页内容进行解析。首先,将获取到的HTML源代码传递给beautifulsoup,并指定解析器类型。然后,可以使用beautifulsoup提供的一些方法,如find_all()来查找包含新闻内容的div元素。 在查找到对应的div元素后,我们可以通过遍历其中的子元素,提取出新闻的标题、发布时间和链接等信息。可以通过调用元素的get_text()方法获取文本内容,以及通过访问元素的属性来获取链接。 最后,可以将获取的新闻信息保存到本地或者进行进一步的处理和分析。可以将信息存储到一个列表或字典中,方便后续的操作。 总而言之,通过使用Python编写爬虫程序,我们可以实现对百度新闻的多个关键字进行搜索,并提取出相关的新闻标题、发布时间和链接等信息。这样就可以方便地获取和处理新闻内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值