【问题标题】:Web-scraping with python使用 python 进行网页抓取
【发布时间】:2019-04-22 10:35:26
【问题描述】:

我想在几个条件下对https://www.esportsearnings.com/tournaments 进行网络抓取,然后将其导出为 CSV。条件是:

  1. 我想要带有超链接的网络抓取文本(<a href链接)
  2. 我想在网络抓取数据时应用过滤器(例如抓取游戏 = Fortnite 的数据)
  3. 自动化多个网页(例如,在网页抓取第一页后,它应该自动抓取 2、3、4 等)


    将 bs4 导入为 bs 导入 urllib.request 将熊猫导入为 pd

    source = urllib.request.urlopen('https://www.esportsearnings.com/tournaments').read() 汤= bs.BeautifulSoup(来源,'lxml') table = soup.find('table') table_rows = table.find_all('tr')

    对于 table_rows 中的 tr: td = tr.find_all('td') row = [i.text for i in td] 打印(行)


我是 python 新手,无法完成所有条件。上面写的代码只是废弃了数据。我想为多个页面自动化它并将其导出到 csv。 有人可以帮忙吗?

【问题讨论】:

  • 你的问题是……?
  • 如何自动化多页代码并导出为csv

标签: python html url web-scraping export-to-csv


【解决方案1】:
import requests
import xlsxwriter 
from bs4 import BeautifulSoup

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
workbook = xlsxwriter.Workbook('C:/Users/Desktop/data.xlsx') 
worksheet = workbook.add_worksheet()
row = 0
column = 0
linkrow =0

urls = ["https://www.esportsearnings.com/tournaments"] #add more url by adding here
for i in urls:
  page = requests.get(i)
  soup = BeautifulSoup(page.content, 'html.parser')
  i=1
  for link in soup.find_all('a'):
      a=link.get('href')
      worksheet.write(linkrow,0,a)
      print(link.get('href'))
      linkrow += 1
workbook.close()      
# for link in soup.find_all('td'):
#     print(link.get_text())   

试试这个代码

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 2020-10-04
    • 2021-05-08
    • 2018-07-20
    • 2021-01-13
    • 2020-03-13
    • 2016-02-10
    • 2021-01-31
    相关资源
    最近更新 更多