python网路爬虫 --------- 使用百度输入的关键字搜索内容然后爬取搜索内容的url

开发环境:windows7+python3.6.3

开发语言:Python

开发工具:pycharm

第三方软件包:需安装lxml4.0,如果只安装lxml会出错,要需要lxml中的etree

废话不多说,贴上代码:

爬取数据保存以TXT格式保存,等会尝试使用Excel表格跟数据库保存。

 import requests,time
from lxml import etree def Redirect(url):
try :
res = requests.get(url,timeout=10)
url = res.url
except Exception as e:
print('',e)
time.sleep(1)
return url def baidu_search(wd,pn_max,sav_file_name):
url = 'http://www.baidu.com/s'
return_set = set() for page in range(pn_max):
pn = page*10
querystring = {'wd':wd,'pn':pn}
headers = {
'pragma':'no-cache',
'accept-encoding': 'gzip,deflate,br',
'accept-language' : 'zh-CN,zh;q=0.8',
'upgrade-insecure-requests' : '',
'user-agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0",
'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
'cache-control': "no-cache",
'connection': "keep-alive",
} try :
response = requests.request('GET',url,headers=headers,params=querystring)
print('!!!!!!!!!!!!!!',response.url)
selector = etree.HTML(response.text,parser = etree.HTMLParser(encoding='utf-8'))
except Exception as e:
print('页面加载失败',e)
continue
with open(sav_file_name,'a+') as f:
for i in range(1,10):
try :
context = selector.xpath('//*[@id="'+str(pn+i)+'"]/h3/a[1]/@href')
print(len(context),context[0])
i = Redirect(context[0])
print('context='+context[0])
print ('i='+i)
f.write(i)
f.write('\n')
break
return_set.add(i)
f.write('\n')
except Exception as e:
print(i,return_set)
print('',e) return return_set if __name__ == '__main__':
wd = '网络贷款'
pn = 100
save_file_name = 'save_url_soup.txt'
return_set = baidu_search(wd,pn,save_file_name)

最新文章

  1. html5 与视频
  2. 如何识别是visual studio下头的哪种类型程序
  3. SharePoint 2013 配置我的网站 图文引导
  4. Web前端发展简史
  5. QSslError 类
  6. C primer plus 读书笔记第六章和第七章
  7. JS字符串方法总结整理
  8. RabbitMQ消息队列系列教程(一)认识RabbitMQ
  9. 读书笔记 - reword (重来)
  10. Jenkins实现Android自动化打包
  11. Nancy.Net之旅-初次见面
  12. How to scroll down with Phantomjs to load dynamic content
  13. spring aop 之xml
  14. 02Linux环境配置
  15. Java字符串String详解
  16. ExternalException (0x80004005): GDI+ 中发生一般性错误
  17. iOS-数据缓存(转载)
  18. Android SDK的安装与环境配置
  19. 使用镶嵌数据集 MosaicDataSet管理不同分辨率影像数据
  20. nodejs ejs模板数据库操作

热门文章

  1. 解决Windows英文版中文软件乱码的问题
  2. 【精】EOS智能合约:system系统合约源码分析
  3. JAVA开发者的Golang快速指南
  4. js实现全选/全不选、反选
  5. Maven教程2(Eclipse配置及maven项目)
  6. Linux进程间通信(System V) --- 共享内存
  7. SQL Server新建登录名,实现SQL Server身份验证模式
  8. .net实现支付宝在线支付
  9. char *s="string"和char s[]="string"的区别
  10. 在UAP中如何通过WebView控件进行C#与JS的交互