之前写了一个,但是效率较低,为了温习及加强爬虫基础,又重写了一遍,同时换成lxml解析器。另外,学习了PEP8,发现跟之前自己习惯居然差不多,偷笑~~~
import requests
import re
from bs4 import BeautifulSoup
def get_text(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except BaseException:
return ''
def url_list(html):
soup = BeautifulSoup(html, 'html.parser')
q = r'/\d{6}/t\d{8}_\d{6}.html'
urls = re.findall(q, str(soup))
url_ls = ['http://www.stats.yn.gov.cn/tjsj/jdsj' + url for url in urls]
return url_ls
def get_excel(url):
try:
r = get_text(url)
so