python 爬取百度url

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Date    : 2017-08-29 18:38:23
 4 # @Author  : EnderZhou ([email protected])
 5 # @Link    : http://www.cnblogs.com/enderzhou/
 6 # @Version : $Id$
 7
 8 import requests
 9 import sys
10 from Queue import Queue
11 import threading
12 from bs4 import BeautifulSoup as bs
13 import re
14
15 # 默认爬取百度76页搜索结果url,调用格式 Python.exe 本文件名称.py 搜索关键字,如关键字含特殊符号使用引号包含起来。
16 # 爬取结果有txt文档输出。目前尚未能过来百度推广链接,后续有可能会完善。另外后续将会添加同一网站相同路径不通参数url的过滤。
17 # https://www.baidu.com/s?wd=ichunqiu&pn=10
18 # wd参数为搜索内容关键字 pn参数控制页码 第二页为10 每页新增10 最大页数参数为750即76页。
19
20 headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36‘,}
21
22 class BaiduSpider(threading.Thread):
23     def __init__(self,queue):
24         threading.Thread.__init__(self)
25         self._queue = queue
26
27     def run(self):
28         while not self._queue.empty():
29              url = self._queue.get()
30              try:
31                  self.spider(url)
32              except Exception as e:
33                  # print e
34                  pass
35
36     def spider(self,url):
37         r = requests.get(url=url,headers=headers)
38         soup = bs(r.content,‘html.parser‘)
39         urllist = soup.find_all(name=‘a‘,attrs={‘data-click‘:re.compile((‘.‘)),‘class‘:None,‘data-is-main-url‘:None})
40         for i in urllist:
41             l = requests.get(url=i[‘href‘],headers=headers)
42             if l.status_code == 200:
43                 ll = l.url.split(‘/‘)
44                 lll = ll[0]+‘//‘+ll[2]+‘\n‘
45                 #可根据需求修改是否显示主域名
46                 sys.stdout.write(lll+l.url+‘\n‘)
47                 f1 = open(‘out_para.txt‘,‘a+‘)
48                 f1.write(l.url+‘\n‘)
49                 f1.close()
50                 with open(‘out_index.txt‘) as f:
51                     if lll not in f.read():
52                         f2 = open(‘out_index.txt‘,‘a+‘)
53                         f2.write(lll)
54                         f2.close()
55
56 def main(keyword):
57     queue = Queue()
58     for i in range(0,760,10):
59         l = ‘https://www.baidu.com/s?wd=‘+keyword+‘&pn=‘+str(i)
60         # print l
61         queue.put(l)
62     threads = []
63     thread_count = 5
64     for i in range(thread_count):
65         threads.append(BaiduSpider(queue))
66     for t in threads:
67         t.start()
68     for t in threads:
69         t.join()
70
71 if __name__ == ‘__main__‘:
72     if len(sys.argv) != 2:
73         print ‘Enter:python %s keyword‘ % sys.argv[0]
74         sys.exit(-1)
75     else:
76         f1 = open(‘out_para.txt‘,‘w‘)
77         f1.close()
78         f2 = open(‘out_index.txt‘,‘w‘)
79         f2.close()
80         main(sys.argv[1])
时间: 2024-10-07 06:38:48

python 爬取百度url的相关文章

通过python 爬取网址url 自动提交百度

通过python 爬取网址url 自动提交百度 昨天同事说,可以手动提交百度这样索引量会上去. 然后想了下.是不是应该弄一个py 然后自动提交呢?想了下.还是弄一个把 python 代码如下: import os import re import shutil REJECT_FILETYPE = 'rar,7z,css,js,jpg,jpeg,gif,bmp,png,swf,exe' #定义爬虫过程中不下载的文件类型 def getinfo(webaddress): #'#通过用户输入的网址连接

python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', 'query 问题

解决办法: 修改url为手机版的地址:http://fanyi.baidu.com/basetrans User-Agent也用手机版的 测试代码: # -*- coding: utf-8 -*- """ ------------------------------------------------- File Name: requestsGet Description : 爬取在线翻译数据s Author : 神秘藏宝室 date: 2018-04-17 --------

python爬取百度搜索图片

在之前通过爬取贴吧图片有了一点经验,先根据之前经验再次爬取百度搜索界面图片 废话不说,先上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/7/22 10:44 # @Author : wqj # @Contact : [email protected] # @Site : # @File : test.py # @Software: PyCharm Community Edition import requests

Python爬取百度贴吧内容

参考资料:https://cuiqingcai.com/993.html  即 静觅» Python爬虫实战二之爬取百度贴吧帖子 我最近在忙学校的一个小项目的时候涉及到NLP的内容.但是在考虑如何训练的时候却才懂什么叫巧妇难为无米之炊的滋味.中文语料库实在少的可怜,偶尔有一两个带标签的语料库,拿出一看,标注惨不忍睹,都让我怀疑是不是机器标注的.正应了那句话,人工智能,有多少智能就有多少人工. 有什么办法呢,硬着头皮,走一步是一步吧,总比停滞不前要好.项目涉及到帖子,那么我相信不管是谁,首先想到的

【学习笔记】python爬取百度真实url

今天跑个脚本需要一堆测试的url,,,挨个找复制粘贴肯定不是程序员的风格,so,还是写个脚本吧. 环境:python2.7 编辑器:sublime text 3 一.分析一下 首先非常感谢百度大佬的url分类非常整齐,都在一个类下 即c-showurl,所以只要根据css爬取链接就可以,利用beautifulsoup即可实现,代码如下:         soup = BeautifulSoup(content,'html.parser')         urls = soup.find_all

python爬取百度搜索结果ur汇总

写了两篇之后,我觉得关于爬虫,重点还是分析过程 分析些什么呢: 1)首先明确自己要爬取的目标 比如这次我们需要爬取的是使用百度搜索之后所有出来的url结果 2)分析手动进行的获取目标的过程,以便以程序实现 比如百度,我们先进行输入关键词搜索,然后百度反馈给我们搜索结果页,我们再一个个进行点击查询 3)思考程序如何实现,并克服实现中的具体困难 那么我们就先按上面的步骤来,我们首先认识到所搜引擎,提供一个搜索框,让用户进行输入,然后点击执行 我们可以先模拟进行搜索,发现点击搜索之后的完整url中有一

Python爬取百度实时热点排行榜

今天爬取的百度的实时热点排行榜 按照惯例,先下载网站的内容到本地: 1 def downhtml(): 2 url = 'http://top.baidu.com/buzz?b=1&fr=20811' 3 headers = {'User-Agent':'Mozilla/5.0'} 4 r = requests.get('url',headers=headers) 5 with open('C:/Code/info_baidu.html','wb') as f: 6 f.write(r.cont

python 爬取百度云资源

1 import urllib.request 2 import re 3 import random 4 5 def get_source(key): 6 7 print('请稍等,爬取中....') 8 headers = [{'User-Agent':'Mozilla/5.0 (Windows NT 6.3 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.8.1000 Chrome/30.0.1599.101 Safari

python 爬取百度翻译进行中英互译

感谢RoyFans 他的博客地址http://www.cnblogs.com/royfans/p/7417914.html import requests def py(): url = 'http://fanyi.baidu.com/v2transapi/' while True: print('感谢百度翻译,禁止用于商业用途') print('----------------------------') content=input("中译英请输入1,英译中请输入2,退出请输入Q\n"